<?php
namespace App\Models\Order;
use App\Libs\Base\Constant;
use \App\Libs\Base\Config;
class Order extends \App\Libs\Base\BaseModel
{
    protected $__TABLE__ = 't_paile_order';
	/**
	*	跳过检测了
	*/
	public function beforeValidation()
	{
        self::skipValidation(['ticket_id', 'status', 'buy_info', 'refund_info', 'out_trade_sn'], $this);
	}

    //关系：
    public function initialize()
    {
        parent::initialize();
        $this->hasOne("gid", "App\Models\Goods\Goods", "id");
    }

    //检查订单是否可以支付，
    public static function checkOrder($uid, $orderSn)
    {
        $matchOrder = self::find([
            'conditions' => 'uid=?1 and order_sn=?2',
//            'columns' => 'id,uid,gid,price,ticket_id,sum,order_sn,status,stime,ctime',
            'bind' => [1 => $uid, 2 => $orderSn]
        ]);
        if (empty($matchOrder)) {
            //未找到订单
            return -10;
        } else {
            //已经找到订单了，需要判断状态；
            // 0:待支付 1:已支付 2:已取消 3.已过期 4.已失效 5.已使用 6.已退款 9.异常
            //其他状态暂时不管
            //已取消时：没有支付按钮，用户一般无法支付,暂时不管；
            //已支付的，如果用户没有刷新页面，需要判断------------
            //已过期的，如果得到订单后，一般用户无法继续支付;暂时不管；
            //
            if ($matchOrder->status == 0 && time() < strtotime($matchOrder->stime)) {
                return $matchOrder;
            } else {
                return $matchOrder->status;
            }
        }
    }

    public static function checkOrderRefund($uid, $orderSn)
    {
//        是否已支付 0:待支付  1:已支付 2:已取消 3.已过期 4.已失效 5.已使用 6.已退款 7.退款中 9.异常
        $matchOrder = self::find([
            'conditions' => 'uid=?1 and order_sn=?2',
            'bind' => [1 => $uid, 2 => $orderSn]
        ]);

        if (empty($matchOrder)) {
            //没有此订单
            return -10;
        } else {
            //检查订单状态
            if ($matchOrder->status = '1') {
                return $matchOrder;
            } else {
                return $matchOrder->status;
            }
        }


    }

    //得到订单状态的说明文字
    public static function getOrderText($status)
    {
        $goodsFlag = Config::instance()->common['goodsFlag'];
        switch ($status) {
//        0:待支付  1:已支付 2:已取消 3.已过期 4.已失效 5.已使用 6.已退款 9.异常
            case '0':
                $text = $goodsFlag['0'];
                break;
            case '1':
                $text = $goodsFlag['1'];
                break;
            case '2':
                $text = $goodsFlag['2'];
                break;
            case '3':
                $text = $goodsFlag['3'];
                break;
            case '4':
                $text = $goodsFlag['4'];
                break;
            case '5':
                $text = $goodsFlag['5'];
                break;
            case '6':
                $text = $goodsFlag['6'];
                break;
            case '7':
                $text = $goodsFlag['7'];
                break;
            case '8':
                $text = $goodsFlag['8'];
                break;
            case '9':
                $text = $goodsFlag['9'];
                break;
        }
        return '订单状态：' . $text;
    }
	
}
